The functions in the INTL dll. IntlVersion ----------- Syntax: WORD FAR PASCAL IntlVersion(void) Description: This function returns the version of the DLL. Backward compatibility is promised. Parameters: - Returns: The version number. Major version in HIBYTE, and minor version in LOBYTE. Return value: Currently 0x0100 (i.e. ver 1.0) Remark: The macros HIWORD and LOWORD are defined in windows.h IntlInit -------- Syntax: BOOL FAR PASCAL IntlInit(LPSTR lpLanguage) Description: This function initiates the DLL. It should be called before any use of the conversion functions (all functions except IntlVersion), and when trapping a WM_WININICHANGE message indicating a change in the [intl] section of WIN.INI. Parameters: lpLanguage: The string in which a copy of the sLanguage variable will be stored. Returns: Result of initialization. Return value: FALSE if initiation failed TRUE on success. Comment: The sLanguage variable is a string containing a 3 letter abbreviation of the language to use. For example "spa" for Spanish or "itn" for Italian. Read WININI2.TXT for more information. If the returned string is empty, no language is set and you should provide the user a way of selecting a language. IntlDateToString ---------------- Syntax: LPSTR FAR PASCAL IntlDateToString(LPSTR lpString, int nYear, int nMon, int nMday, int nWday, int nMode) Description: This function converts a date, in year, month, day of month and day of week, to a string. The conversion can be either to a long or short format. Parameters: lpString: The string in which the result of the conversion will be stored. nYear: as in struct tm. nMon: as in struct tm. nMday: as in struct tm (month day). nWday: as in struct tm (week day). nMode: IntlSHORT or IntlLONG. Anything else gives unpredictable results. Returns: lpString Comment: There is no check if the date is valid or not. Remark: IntlSHORT and IntlLONG are defined in intl.h IntlTimeToString ---------------- Syntax: LPSTR FAR PASCAL IntlTimeToString(LPSTR lpString, int nNour, int nMin, int nSec) Description: This function converts a time in hours, minutes and seconds to a string. Parameters: lpString: The string in which the result of the conversion will be stored. nHour: as in struct tm. nMin: as in struct tm or IntlSKIP. nSec: as in struct tm or IntlSKIP. Returns: lpString Comment: There is no check if the time is valid or not. If a parameter is IntlSKIP the field representing that parameter and the fields after that will be ignored. Remark: IntlSKIP is defined in intl.h IntlFloatToString ----------------- Syntax: LPSTR FAR PASCAL IntlFloatToString(LPSTR lpString, double dVal, int nMode, size_t nWidth int nDecimals) Description: This function converts a floating point number to a string. The conversion can be to any of the formats IntlSTD, IntlFIX, IntlSCI, IntlENG or IntlPRE. Parameters: lpString: The string in which the result of the conversion will be stored dVal: The floating point number to convert. nMode: The mode to convert to. The modes are: IntlSTD: The standard conversion. Numbers formatted as xxxx.yyyy. There are two exceptions to this. (1) The number is too large to be contained in the field. (2) The value of the number is so small, it'd be converted to 0.000. In both cases the mode becomes IntlSCI. IntlFIX: Same as IntlSTD, except the number that are small will be converted to 0.000 IntlSCI: Scientific mode. The number will be converted to the x.yyyEz format. IntlENG: Engineering mode. Like the IntlSCI, but the power of 10 will always be a multiple of 3. The format can then be either x.yyyEz, xx.yyEz or xxx.yEz IntlPRE: Prefix mode. Like IntlENG, but the power of 10, will be displayed using scientific prefixes (y, z, a, f, p, n, u, m, k, M, G, T, P, E, Z or Y) if within that range. Otherwise identical to IntlSCI. nWidth: The width of the field to contain the number. nDecilals: The numbers of decimals to show, or IntlDEFAULT to use the settings in in WIN.INI. Returns: lpString Remarks: IntlSTD, IntlFIX, IntlSCI, IntlENG and IntlPRE are defined in intl.h IntlCurrencyToString ------------------- Syntax: LPSTR FAR PASCAL IntlCurrencyToString(LPSTR lpString, double dVal, int nMode, size_t nWidth, int nDecimals) Description: This function converts a floating point number to a string representing a currency. The conversion can be to any of the formats IntlSTD, IntlFIX, IntlSCI, IntlENG or IntlPRE. The function is identical to IntlFloatToString with the addition of the currency symbols. Parameters: lpString: The string in which the result of the conversion will be stored. dVal: The floating point number to convert. nMode: The mode to convert to. The modes are: IntlSTD: The standard conversion. Numbers formatted as xxxx.yyyy. There are two exceptions to this. (1) The number is too large to be contained in the field. (2) The value of the number is so small, it'd be converted to 0.000. In both cases the mode becomes IntlSCI. IntlFIX: Same as IntlSTD, except the number that are small will be displayed as 0.000 IntlSCI: Scientific mode. The number will be converted to the x.yyyEz format. IntlENG: Engineering mode. Like the IntlSCI, but the power of 10 will always be a multiple of 3. The format can then be either x.yyyEz, xx.yyEz or xxx.yEz IntlPRE: Prefix mode. Like IntlENG, but the power of 10, will be displayed using scientific prefixes (y, z, a, f, p, n, u, m, k, M, G, T, P, E, Z, Y) if within that range. Otherwise identical to IntlSCI. nWidth: The width of the field to contain the number. nDecimals: The numbers of decimals to show, or IntlDEFAULT to use the settings in WIN.INI. Returns: lpString Remarks: IntlSTD, IntlFIX, IntlSCI, IntlENG and IntlPRE are defined in intl.h IntlStringToDate ---------------- Syntax: BOOL FAR PASCAL IntlStringToDate(LPSTR lpString, LPINT lpnYear, LPINT lpnMon, LPINT lpnMday, LPSTR FAR *lpszEnd) Description: This functions converts a string containing a date in short form, to year, month and day of month. The conversion is quite liberal. Either of short and long form of the year is allowed. Leading zeroes are ignored. Parameters: lpString: Contains the string to parse. lpnYear: A pointer to an int where the year (formatted as in struct tm) will be stored. It can also be a NULL pointer. lpnMon: A pointer to an int where the month (formatted as in struct tm) will be stored. It can also be a null pointer. lpnMday: A pointer to an int where the day of month (formatted as in struct tm) will be stored. It can also be a null pointer. lpszEnd: A pointer to a char pointer. It will point to the location in lpString where the conversion ended, either upon completion or because of errors. You can also send a NULL pointer. Returns: Report of the success of the conversion. Return value: TRUE: The conversion was successful. FALSE: The conversion failed. Comment: There is no check if the date is valid or not. Remark: The type LPINT is defined as a pointer to an int, in intl.h IntlStringToTime ---------------- Syntax: BOOL FAR PASCAL IntlStringToTime(LPSTR lpString, LPINT lpnHour, LPINT lpnMin, LPINT lpnSec, LPSTR FAR *lpszEnd) Description: This function converts a time, stored in a string, to hours, minutes and seconds. The conversion is quite liberal. If the am/pm equivalence is omitted, the string is interpreted as a 24 hour time. In 24 hour setting, a trailing am/pm equivalence is ignored. Leading zeroes are ignored. Parameters: lpString: The string containing the time. lpnHour: A pointer to an int where the hour (formatted as in struct tm) will be stored. It can also be a NULL pointer. lpnMin: A pointer to an int where the minute (formatted as in struct tm) will be stored. It can also be a NULL pointer. lpnSec: A pointer to an int where the seconds (formatted as in struct tm) will be stored. It can also be a NULL pointer. lpszEnd: A pointer to a char pointer. It will point to the location in lpString where the conversion ended, either upon completion or because of errors. You can also send a NULL pointer. Returns: Report of the success of the conversion. Return value: TRUE: The conversion was successful. FALSE: The conversion failed Comment: There is no check if the time is valid or not. Remark: The type LPINT is defined as a pointer to an int, in intl.h IntlStringToFloat ----------------- Syntax: double FAR PASCAL IntlStringToFloat(LPSTR lpString, LPSTR FAR *lpszEnd) Description: This function converts string representation of a floating point number to a double. The format of the string can be any of the IntlSTD, IntlFIX, IntlSCI, IntlENG or IntlPRE. Parameters: lpString: The string containing the number to convert. lpszEnd: A pointer to a char pointer. It will point to the location in lpString where the conversion ended, either upun completion or because of errors. You can also send a NULL pointer. Returns: The number or zero if the conversion failed. Comment: The number can be in any of the IntlFIX, IntlSTD, IntlSCI, IntlENG or the IntlPRE format. IntlGetPhrase ------------- Syntax: LPSTR FAR PASCAL IntlGetPhrase(LPSTR lpReturn, int nWidth, LPSTR lpIniFile, LPSTR lpPhrase) Description: This function looks up the phrase szPhrase in the current language section of the application specific ini file, specified in szIniFile, and if not found there, in INTL.INI, which contains the phrases listed in appendix E of the CUA. It the phrase is not found in neither the application specific ini file, nor INTL.INI, szPhrase will be copied into szReturn. The search is case insensitive. If the first letter if the lookup-phrase is a capital letter, the first letter of the returned string is capitalized. Parameters: lpReturn: Points to the buffer that will contain the returned string. nWidth: The size of szReturn. lpIniFile: String containing the name of the application specific ini file. If it's either NULL or points to en empty string, only INTL.INI will be searched for the phrase. lpPhrase: Points to the null terminated phrase. Returns: The pointer to lpReturn. Comment: White space and punctuation characters, according to isspace() and ispunct(), in the beginning and the end of the phrase should be omitted in the ini files. They will be automatically inserted/appended to the translated phrase. Example: Code example: IntlGetPhrase((LPSTR)szPhrase, sizeof szPhrase, "myini.ini", "** yellow submarine **"); . . MYINI.INI example: [ger] yellow submarine=gelbes U-Boot [swe] yellow submarine=gul ub†t IntlGetMessage -------------- Syntax: LPSTR FAR PASCAL IntlGetMessage(LPSTR lpReturn, int nWidth, LPSTR lpIniFile, LPSTR lpIdent) Description: This function fetches a message, in the current language, defined in your application specific ini file. If the message is not found in the current language section, the [usa] section will be searched. The message identified by szIdent MUST be defined in the [usa] section of your application specific ini file. Parameters: lpReturn: Points to the buffer that will contain the returned string. nWidth: The length of lpReturn. lpIniFile: String containing the name of the application specific ini file. lpIdent: Points to the null terminated identifier string of the message. Returns: The pointer to lpReturn. Comment: The message can contain the following escape sequences: \a Alert \b Backspace \f Formfeed \n Newline \r Carriage return \t tab \v Vertical tab \' Single quote \" Double quote \\ Backslash Example: Code example: IntlGetMessage((LPSTR)szMess, sizeof szMess, "myini.ini", "Demotext"); . . MYINI.INI example: [usa] Demotext=a few words. [swe] Demotext=n†gra f† ord. [ger] Demotext=Ein par W”rter.